// interface和type的区别

// interface和type都可以用来定义对象类型,那么在开发中定义对象类型选那个
// 定义非对象类型 推荐用type
// 如Direction 联合 
type Direction = 'left' | 'right' | 'center'
// 如Function
type CalcFunc2 = (num1: number, num2: number) => number
const add2: CalcFunc = (num1, num2) => {
    return num1 + num2
}

// 定义对象类型 type和interface有区别的
// interface 可以重复的对某个接口来定义属性和方法
// type定义的是别名,别名是不能重复的

// Interface 可以重复定义，类型注解会累加,这样可以在一个文件中引用IPerson后自定义加上想定义的属性或方法,不影响其他文件引用接口
interface IPerson {
    name: string,
    running: () => void
}
interface IPerson {
    age: number
}
const person1: IPerson = {
    name: "hoh",
    age: 18,
    running() {
        console.log("I am running")
    }
}
person1.running()

//  type不能重复 因type是别名
// type Person2 = {
//     name: string
//     running: () => void
// }
// type Person2 = {
//     age: number
// }



export { }
